Release Notes
Release notes for Commerce Server 11.1. Contain information on late breaking developments, known issues, and workarounds.
January 29, 2015
Commerce Server 11.1 Update 1 is released.
Note: This is a product update. You can use this release for a fresh installation or to upgrade Commerce Server 11.1 Initial release.
Issues resolved:
- A fix for vulnerability in a Microsoft Common Control (Microsoft security bulletin MS14-024).
October 28, 2014
Commerce Server 11.1 Initial Release is released.
Breaking Changes
The following is a list of breaking changes to the Commerce Server code base which may impact customer code, and/or some legacy QA test code.
- Commerce Server depends on .NET 4.5.1. Code directly referencing Commerce Server assemblies must be changed to target .NET 4.5.1. You may still access web services or go through COM interfaces to maintain compatibility where there are no direct references to CS assemblies.
- Due to changes in the .NET Framework, as of .NET 3.5, GetEnumerator() no longer exists as a member of the DataTable or DataSet classes. It has moved to System.Data.DataSetExtensions.dll as an extension method. Any attempt to foreach over the Rows of a DataTable, or similar operations, will fail unless a reference to System.Data.DataSetExtensions.dll is added to your projects that use Commerce Server DataTables or DataSets in this way.
- Commerce Server requires the latest Visual C++ 2013 runtime, which is installed automatically by the installer in a customer environment. Native code that accesses Commerce Server native COM objects should not require any changes.
- ADODB Recordsets that are returned to client code from Commerce Server COM objects are not automatically populated with default values as VB6 used to. Any attempt to MoveFirst() or MoveNext() will fail if you do so when the Recordset.EOF = true, because there are no rows. VB6 allows you to MoveFirst() on a Recordset that has no rows, and returned a Recordset that allowed that operation for clients operating on the Recordset. VB6 would also construct an empty, default Recordset on the client side, even if the server returned null. This is no longer allowed. The simplest fix is just to change your code to check if the Recordset state is not closed, and ensure it is not empty before invoking operations involving any rows.
- CommerceServer.Core.Configuration.dll replaces the legacy configuration APIs. Change any CommerceServer.Core.Interop.Configuration.MSCSCFG.dll references to use CommerceServer.Core.Configuration.dll and change all type references. For example:
- GlobalConfigFreeThreaded -> IGlobalConfig
- GlobalConfigAdminFreeThreaded -> IGlobalConfig2
- SiteConfigFreeThreaded -> ISiteConfig
- SiteConfigReadOnly -> ISiteConfigReadOnly
If you were using late binding, via ProgIds, the ProgIds have not changed, so no action is required. - CommerceServer.Core.Profiles.dll replaces the legacy BizDataManager.dll, and there is no longer any need to go through the legacy CommerceServer.Core.Internal.Profiles.BusinessDataAdminInterop wrapper (CommerceServer.Core.Profiles.DataManagement.dll). However, it is still available to support legacy dependencies. Customers using the BusinessDataAdminInterop class should not have to make any changes.
- Customers using the new CommerceServer.Core.Profiles.dll instead of the legacy VB6 COM object will have to change ref params to pass the parameters by value.